Page({
  data: {
    counselorId: null, // 咨询师ID
    messageContent: '', // 留言内容
    wordCount: 0, // 字数统计
    canSubmit: false, // 是否可以提交
    userId: null, // 用户ID
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 1. 获取咨询师ID（从页面参数）
    const counselorId = options.counselorId;
    if (!counselorId) {
      wx.showToast({
        title: '参数错误，缺少咨询师ID',
        icon: 'none',
        duration: 2000,
        success: () => {
          setTimeout(() => {
            wx.navigateBack();
          }, 2000);
        }
      });
      return;
    }
    this.setData({ counselorId });

    // 2. 检查用户登录状态
    const userId = wx.getStorageSync('userId');
    if (!userId) {
      // 未登录：跳转到登录页，并携带当前留言页路径（含咨询师ID）
      wx.showToast({
        title: '请先登录',
        icon: 'none',
        duration: 1500
      });

      // 延迟1.5秒跳转（等待提示显示）
      setTimeout(() => {
        // 构建当前留言页的完整路径（含参数）
        const currentPageUrl = `/consult/pages/leaveMessage/leaveMessage?counselorId=${counselorId}`;
        // 跳转到登录页，传递路径参数（需编码避免冲突）
        wx.navigateTo({
          url: `/pages/login/login?url=${encodeURIComponent(currentPageUrl)}`
        });
      }, 1500);
      return;
    }

    // 已登录：保存用户ID
    this.setData({ userId });
  },

  /**
   * 监听留言输入
   */
  onInput(e) {
    const value = e.detail.value || '';
    this.setData({
      messageContent: value,
      wordCount: value.length,
      canSubmit: value.length > 0 && value.length <= 500 // 非空且不超过500字
    });
  },

  /**
   * 提交留言
   */
  submitMessage() {
    if (!this.data.canSubmit) return;

    wx.showLoading({ title: '提交中...', mask: true });

    // 构建请求数据
    const requestData = {
      leaveContent: this.data.messageContent,
      userId: this.data.userId,
      counselorId: this.data.counselorId
    };

    // 调用留言接口
    wx.request({
      url: 'http://localhost:8080/counselorLeaveword',
      method: 'POST',
      header: { 'Content-Type': 'application/json' },
      data: requestData,
      success: (res) => {
        wx.hideLoading();
        if (res.statusCode === 200 && res.data.code === 200) {
          wx.showToast({
            title: '留言成功',
            icon: 'success',
            duration: 2000,
            success: () => setTimeout(() => wx.navigateBack(), 2000)
          });
        } else {
          wx.showToast({ title: res.data.message || '提交失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({ title: '网络错误，请重试', icon: 'none' });
      }
    });
  }
});